def add(func):  # 第一个装饰器：添加吹风机
    def inner():
        print("这是添加功能")  # 就远原则
        func()  # 被装饰函数
        print("添加吹风机")  # 就近原则
    return inner

def clean(func):  # 第二个装饰器：打扫
    def inner():
        print("这是打扫功能")
        func()
        print("正在打扫...")
    return inner

# 要求在添加吹风机之前先打扫，再添加吹风机...
@clean
@add
def house():
    print("三室一厅的房子")
    print("电视")
    print("电机")
# 就近原则：先执行离被装饰函数近的装饰器：从下往上执行
# 就远原则：先执行离被装饰函数远的装饰器：从上往下执行

house()
